﻿using Microsoft.EntityFrameworkCore.Metadata.Internal;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Threading.Tasks;
using 旅游管理系统.Models;

namespace 旅游管理系统.Dtos
{
    public class TouristRouteDto
    {
        /// <summary>
        /// Guid 类型：在数据中作为唯一标识类型
        /// </summary>
        public Guid Id { get; set; }
        /// <summary>
        /// 名称或标题
        /// </summary>
        public string Title { get; set; }
        /// <summary>
        /// 描述、说明
        /// </summary>
        public string Description { get; set; }
        /// <summary>
        /// 使用计算好的价格来代替原价和折扣，计算方式  原价*折扣
        /// </summary>
        public decimal Price { get; set; }
        #region 为了不暴露原价和折扣删除这两个字段
        ///// <summary>
        ///// 原价
        ///// </summary>
        //public decimal OriginalPrice { get; set; }
        ///// <summary>
        ///// 折扣  百分比的形式存储在数据库中
        ///// </summary>
        //public double? DiscountPresent { get; set; } //可控字段：指用户可填可不填，
        #endregion
        /// <summary>
        /// 发布时间
        /// </summary>
        public DateTime CreateTime { get; set; }
        /// <summary>
        /// 更新时间
        /// </summary>
        public DateTime? UpdateTime { get; set; }
        /// <summary>
        /// 出发时间
        /// </summary>
        public DateTime? DepartureTime { get; set; }
        /// <summary>
        /// 买点介绍
        /// </summary>
        public string Features { get; set; }
        /// <summary>
        /// 费用说明
        /// </summary>
        public string Fees { get; set; }
        /// <summary>
        /// 备注
        /// </summary>
        public string Notes { get; set; }
        /// <summary>
        /// 评分
        /// </summary>
        public double? Rating { get; set; }
        /// <summary>
        /// 旅游天数
        /// </summary>
        public string TravelDays { get; set; }
        /// <summary>
        /// 旅游类型
        /// </summary>
        public string TripType { get; set; }
        /// <summary>
        /// 出发地
        /// </summary>
        public string DepartureCity { get; set; }
        /// <summary>
        /// 让图片与旅游路线同时输出
        /// </summary>
        public ICollection<TouristRoutePictureDto> TouristRoutePictures { get; set; }//使用AutoMapper把图片信息传导到DTO中的，
        //在使用 AutoMapper时，当两个对象的字段完全一致时，AutoMapper会自动做数据的映射，而映射字段的类型是已经在 Profile中注册的对象，那么不需要做任何的配置，AutoMapper会接管任何的配置
        //所以在 Profile文件夹中已经注册好了，一个是TouristRoutePictureProfile，另一个是TouristRouteProfile
    }
}
